package com.hyperf.event.client;

/**
 * 消息监听器.
 *
 * @author lizhaoyang
 */
public interface EventMessageListener {

    /**
     * 事件监听器是否生效
     *
     * @return
     */
    default boolean isEnabled() {
        return true;
    }

    /**
     * 监听的事件类型
     *
     * @return 监听的事件类型
     */
    String getEventType();


    /**
     * 消费事件接口，由应用来实现
     *
     * @param message 消息
     * @return 消费结果，如果应用抛出异常或者返回Null等价于返回EventAction.RECONSUME_LATER
     */
    EventAction consume(final EventMessage message);
}
